import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import './styles/element-variables.scss'
//import 'element-ui/lib/theme-chalk/index.css'
import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css


import App from './App'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

import "./assets/css/color.scss";
import "./assets/css/base.scss";

import tinymce from 'tinymce';
Vue.prototype.$tinymce = tinymce;

Vue.prototype.$pageSize = [15, 30, 100, 300, 500, 1000];

Vue.prototype.$_App_getSummaries = function (param) {
  const { columns, data } = param;
  const sums = [];
  const summariesKey = ['balance',
    'today_cost',
    'total_cost',
    'product_count',
    'product_clue_price_sham',
    'product_clue_price_real',
    'money',
    'organization_balance',
    'cm_expend_money',
    'today_push_num',
    'advertising_cooperative_price',
    'uv',
    'cost',
    'organization_earnings_real',
    'cost_real',
    'earnings_real',
    'profit',
    'pv',
    'uv_num',
    'clue_num',
    'advertising_visits_num',
    'advertising_visits_price',
    'clue_push_success_num',
    'api_collision_count',
    'api_push_count',
    'yesterday_cost',
    'cooperative_price',
    'product_clue_num',
    // ''
  ];
  columns.forEach((column, index) => {
    if (index === 0) {
      sums[index] = "合计";
    }
    if (summariesKey.includes(column.property)) {
      const values = data.map((item) => Number(item[column.property]));
      if (!values.every((value) => isNaN(value))) {
        sums[index] = values.reduce((prev, curr) => {
          const value = Number(curr);
          if (!isNaN(value)) {
            return prev + curr;
          }
        }, 0);
        // 保留两个浮点数
        sums[index] = sums[index].toFixed(2);
      }
    }
  });
  return sums;
};


/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}

// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI)

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})
